04. OOP 语法
面向对象编程语法
在此视频中,你将了解 Python 中的类和对象是什么样的代码。在下个部分,你将有机会自己探索代码,然后自己编写类。
面向对象编程语法
函数和方法
在上方视频的 1:44 处,说话者错误地将 init 称为函数,而不是方法。为何 init 不是函数?
函数和方法看起来很像。它们都使用关键字
def
。它们都有输入并返回输出。两者区别在于:方法位于类里面,而函数位于类外面。
self 是什么?
如果实例化以下对象,Python 如何区分这两个对象?
shirt_one = Shirt('red', 'S', 'short-sleeve', 15)
short_two = Shirt('yellow', 'M', 'long-sleeve', 20)
这时候
self
就派上用场了。如果你对 shirt_one 调用
change_price
方法,Python 如何知道更改 shirt_one 的价格,而不是 shirt_two 的价格?
shirt_one.change_price(12)
Python 在后台调用
change_price
方法:
def change_price(self, new_price):
self.price = new_price
Self
告诉 Python 在计算机中的何处查找 shirt_one 对象,然后,Python 更改 shirt_one 对象的价格。当你以
shirt_one.change_price(12)
形式调用
change_price
方法时,
self
并未出现,但是实际上已发挥效用。
单词
self
只是个常用叫法。理论上,你可以使用任何其他名称,只要保持一致即可。实际上,你应该始终使用
self
而不是其他单词,否则其他人可能看不懂。